-
-
Notifications
You must be signed in to change notification settings - Fork 127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
make the update script work on macOS #349
base: master
Are you sure you want to change the base?
Conversation
macOS users run into the following issues when trying to install Skyscraper: • They may have skipped over the need to install the `qt5` and `wget` Homebrew packages • BSD `tar` does not support `--overwrite`. It also doesn't need it, as it overwrites by default • BSD `rm` doesn't support `--force`, but `-f` should work across all platforms • `make clean` won't work if this is the first time you're fetching Skyscraper, as no `Makefile` exists yet to define the 'clean' target • `qmake` will treat the `VERSION` file as source and fail on the invalid syntax of its contents • A sudden prompt for a password might be confusing or concerning The `update_skyscraper.sh` script has been updated to address these things while retaining compatibility with non-macOS systems. The following changes have been made: • Each step of the update process has been moved into its own function • `qmake` and `wget` are looked for in PATH before proceeding • The `tar` command will conditionally add `--overwrite` whenever a non-macOS system is involved • `rm --force` has been replaced with `rm -f` • `make clean` is not performed unless `Makefile` exists • `VERSION` has been renamed to `VERSION.txt` • A note is echoed to STDOUT about it being the installation's use of `sudo` that may require a password. The following things should NOT need to be done by macOS users: • Installing GNU tar on macOS • Changing the Qmake defaults away from clang to gcc
Hi, |
- use 'VERSION' as the version file's name - on macOS systems, rename 'VERSION' to 'VERSION.bak' temporarily to prevent build issues with `make`, which evidently evidently treats 'VERSION' files as source
Hi @muldjord, Sure thing, I have gone back to The problem is that Also... now that I am able to get Skyscraper working on my macOS system, I am really enjoying it. Thank you very much for such a great product! |
Hmm, I think the reason Perhaps digging into the makefile qmake creates can help figure out what's going on. |
@muldjord It looks like the Qmake project file directly does an I dug into this one a little further. We wouldn't have to rename or temporarily move the If I make this change to the contents of - VERSION=1.2.3
+ VERSION="1.2.3" then everything works. |
That makes perfect sense. I will make that change. Thanks for looking into it. If you can then adjust the PR to not worry about the VERSION file, then I could test that also. Thanks. |
I apologize, @muldjord - it seems that my earlier conclusion about simply using quotes was incorrect. They don't hurt anything, but they don't make things work. When testing from scratch, I am still running into errors getting I then tried changing
With those changes, the For now it seems that we must do one of the following:
I'll let you know if I come up with any other ideas. |
Here is some more information about why the existence of the
That include lights up the following chain of includes:
On macOS, the filesystem is case-insensitive by default. Therefore the I can currently think of the following 4 ways around this problem:
|
Using the forked script in this PR seemed to allow things to install properly, but no artwork is being generated for any platform on an M1 Mac running Ventura. |
macOS users run into the following issues when trying to install Skyscraper:
- They may have skipped over the need to install the
qt5
andwget
Homebrew packagestar
does not support--overwrite
. It also doesn't need it, as it overwrites by default- BSD
rm
doesn't support--force
, but-f
should work across all platformsmake clean
won't work if this is the first time you're fetching Skyscraper, as noMakefile
exists yet to define the 'clean' target-
-make
will treat theVERSION
file as source and fail on the invalid syntax of its contents- A sudden prompt for a password might be confusing or concerning
The
update_skyscraper.sh
script has been updated to address these things while retaining compatibility with non-macOS systems.The following changes have been made:
- Each step of the update process has been moved into its own function
qmake
andwget
are looked for in PATH before proceedingtar
command will conditionally add--overwrite
whenever a non-macOS system is involvedrm --force
has been replaced withrm -f
make clean
is not performed unlessMakefile
existsmake
under macOS,VERSION
gets temporarily renamed toVERSION.bak
• A note is echoed to STDOUT about it being the installation's use of
sudo
that may require a password.The following things should NOT need to be done by macOS users:
resolves #301